//Portions Copyright (C) 2011 Randall Shattuck
//Portions Copyright (C) 2007-2010 Owners of libeveapi 
//    (http://libeveapi.googlecode.com)
//
//EveDashboard.Api was forked from libeveapi 1.1.3
//
//This program is free software; you can redistribute it and/or modify it under
//the terms of the GNU General Public License as published by the Free Software 
//Foundation; either version 2 of the License, or (at your option) any later 
//version.
//
//This program is distributed in the hope that it will be useful, but WITHOUT 
//ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
//FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 
//details. You should have received a copy of the GNU General Public License 
//along with this program; if not, write to the Free Software Foundation, Inc.,
//59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//-----------------------------------------------------------------------------

using System.Xml;

namespace EveDashboard.Api.ResponseObjects.Parsers
{
    ///<summary>
    ///</summary>
    ///<typeparam name="T"></typeparam>
    internal interface IApiResponseParser<T> where T : ApiResponse
    {
        ///<summary>
        /// Parses a <see cref="XmlDocument" /> to an appropriate <see cref="ApiResponse" /> of type <typeparamref name="T"/>.
        ///</summary>
        ///<param name="xmlDocument">The <see cref="XmlDocument" /> from which an <see cref="ApiResponse" /> should be derived.</param>
        ///<returns>An <see cref="ApiResponse" /> of type <typeparamref name="T"/></returns>
        T Parse(XmlDocument xmlDocument);
        /// <summary>
        /// Checks the Eve Xml Response version with the currenct Object being parsed
        /// </summary>
        /// <param name="xmlDocument">The <see cref="XmlDocument" /> from which an <see cref="ApiResponse" /> should be derived.</param>
        void CheckVersion(XmlDocument xmlDocument);
    }
}
